from PyPDF2 import PdfFileReader, PdfFileWriter
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
# 打开合并后的 PDF 文件
input_pdf_path = './image_paths/pdf_files/new_merged_pdf/merged.pdf'
pdf_reader = PdfFileReader(input_pdf_path)

# 创建一个新的 PDF 文件对象
output_pdf_path = './image_paths/pdf_files/new_merged_pdf/something_set_info.pdf'
pdf_writer = PdfFileWriter()

# 复制输入文件的所有页面到输出文件
for page_num in range(pdf_reader.getNumPages()):
    page = pdf_reader.getPage(page_num)

    # 在指定页面的右上角添加信息
    if page_num == 4:  # 第四页在索引中为3
        c = canvas.Canvas("temp.pdf", pagesize=letter)
        width, height = letter
        text = "我xxxx你xxxx它xxxx"
        text_width = c.stringWidth(text, "Helvetica", 40)  # 设置文本宽度
        text_height = height - 10  # 设置标记位置距离顶部的高度
        c.setFont("Helvetica", 40)  # 设置字体大小
        c.drawString(width - text_width - 20, text_height, text)  # 在右上角绘制文本
        c.save()

        temp_pdf = PdfFileReader("temp.pdf")
        temp_page = temp_pdf.getPage(0)
        temp_page.scaleTo(page.mediaBox.getWidth(), page.mediaBox.getHeight())  # 将临时页面大小调整为原页面大小
        page.mergePage(temp_page)  # 将临时页面的内容合并到原页面
        page.compressContentStreams()  # 压缩页面内容

    pdf_writer.addPage(page)

# 将修改后的 PDF 文件保存到新的文件夹中
with open(output_pdf_path, "wb") as output_file:
    pdf_writer.write(output_file)

print(f"修改成功，保存为 {output_pdf_path}")